package com.qsw.paper.service;

import com.qsw.paper.pojo.dto.StudentsDto;
import com.qsw.paper.pojo.dto.StudentsQueryDto;
import com.qsw.paper.pojo.entity.Students;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qsw.paper.pojo.vo.StudentCountByYearVO;
import com.qsw.paper.pojo.vo.StudentsVO;
import com.qsw.paper.result.PageResult;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author qsw
 * @since 2024-11-15
 */
public interface IStudentsService extends IService<Students> {

    /**
     * 分页查询学生
     *
     * @param queryDto dto
     * @return 分页数据
     */
    PageResult<?> pageList(StudentsQueryDto queryDto);

    /**
     * 添加学生
     */
    void save(StudentsDto studentsDto);

    /**
     * 修改学生信息
     *
     * @param id          学生id
     * @param studentsDto dto
     */
    void update(StudentsDto studentsDto, Integer id);

    /**
     * 删除学生
     *
     * @param id 学生id
     */
    void delete(Integer id);

    /**
     * 获取学生详细信息
     *
     * @param id 学生id
     * @return 学生实体
     */
    StudentsVO findById(Integer id);

    /**
     * 按年份展示每个学年学校的所有学生人数（近五年）
     *
     * @return 数据列表
     */
    List<StudentCountByYearVO> getStudentCountByYear();

}
